This invention relates to the field of computer systems. More particularly, a system and methods are provided for configuring a network interface device to support jumbo frames (or other properties) for selected communication streams, through the use of virtual device nodes.
Jumbo frames are often useful in Ethernet network spaces, to allow greater amounts of data to be conveyed in each packet. However, existing support for jumbo frames is unsatisfactory in many existing computer systems and network interface circuits. In particular, support for jumbo frames cannot be selectively enabled for different communication streams. As a result, the hardware cannot automatically filter out jumbo frames for streams that cannot handle them, and it must pass all such packets to software. The network interface circuit (NIC) and the host computer system therefore become vulnerable to a denial of service attack (i.e., through the flooding of jumbo frames).
More specifically, because of how network interface circuits and their software drivers currently operate, if jumbo frames are enabled at the hardware for one communication stream, they must be enabled for all streams. For example, in a computer system operating a form of the UNIX operating system, device nodes are created for every hardware device and for every hardware device's software driver. Because only one node can typically be created for each Style 2 driver, the configuration of that node is applied for all communication streams through the corresponding hardware device. Thus, for a NIC hosting multiple communication streams, the device node for the NIC's driver will specify, among other things, a default MTU (Maximum Transfer Unit) size to be applied to all streams.
Another result of current methods of supporting jumbo frames is that jumbo frame support may be inadvertently enabled on a network or sub-network only designed to support smaller frames.
Thus, there is a need for an apparatus and a method for configuring a NIC or other network interface device to support jumbo frames, at the device layer, on just specified streams. More generally, there is a need for an apparatus and a method for virtualizing a communication device to allow it to be operated with different operating parameters for different communication streams.